%
% Overview of the nodes and their relationship.
% Short description of nodes.
% State and signal schtuff
%
\section{System Overview}

Since ROS gives the possibility to split the system into several nodes, an overview over \emph{saint nr 9} is given in figure \ref{pic:overview}.

\begin{figure}[!htb]
\includegraphics[width = 0.9\textwidth]{pic/SystemOverview.png}
\caption{Components of the system and their signal interacting}
\label{pic:overview}
\end{figure}
\begin{description}
\item[Motors] - \textit{Motors} describes the component of the node that talks to the physical motors. \textit{Motors} set speed and forward/backward rotation and provides information about the encoder readings, that the physical motors give. 
\item[Analalog-Digital-Converter] - The \textit{Analog-Digital-Converter}-Node reads the values of the Analog-Digital-part of the board and publishes them to a topic.
\item[Camera] - \textit{Camera} is a node that takes pictures with the physical camera and provides them over a topic. 
\item[MotorControl] - \textit{MotorControl} is a more high level possibility to talk to the motors. The node provides several different possibilities to make the robot move forward, backward or rotate. The node sends messages directly to the \textit{Motors} and uses partly encoder based movement strategies. (View \ref{motor_control})
\item[IR-Sensor-Transformer] -  This node transforms the raw IR-sensor-readings that are provided by the \textit{Analog-Digital-Converter}. The convertion from raw values to real centimeters is based on calibration measurement. 
\item[SignalProcessor] - The \textit{SignalProcessor} - Node is responsible for collecting all necessary data to create one signal that provides all important information that is needed to decide on which state transition should take place (Used in StateMachine). The node provides a more abstract view on the IR-sensor-readings and differs only between Far and Close. The information message provided is a binary string. The positions of the ones in the string keep all information that needs to be transfered. 
\item[StateMachine] - The StateMachine is a main part of the system. It determines the movement of the robot and influences other parts of the system e.g. the map building.
\item[TagRecognition] - This node is responsible for detecting tags and stop the robot in front of them and for the tag identification.
\item[Map] - The \textit{Map}-Node builds the map and keeps track about the position (localization) of the robot based on the actual state. 
\item[Movement-Control] - Depended on the state the \textit{Movement-Control} sends commands to the \textit{MotorControl} that determine the movement of the robot. It also keeps track of a straight wall following in case of the \textit{WallFollower}
\item[PathPlanner] - The \textit{PathPlanner} determine a path for the robot to the goal. Therefore it builds some kind of potential field that leads the robot from any position to the goal (e.g. a tag). 
\item[Queen] - The \textit{Queen} integrates the whole system, so that it can be started easily. The Queen gets an argument which provides the information about the phase in which the robot is at the moment. Since the path planner just find the path to one goal position the \textit{Queen} is also responsible to set the goals so that the path can be build. 

\end{description}
